import { Tab } from '#/browser/entities/tab.entity'
import { TabManager } from '#/browser/managers/tab.manager'

export { separateCommand } from './separate.commands'
export { windowCommand } from './window.commands'

/**
 * 窗口级命令上下文（运行时注入）
 */
export type WindowCommandContext = {
  tabManager: TabManager
  layoutTab: Tab
  sourceTab: Tab
}

/**
 * 独立窗口（Separate）命令上下文（运行时注入）
 */
export type SeparateCommandContext = {
  layoutTab: Tab
  contentTab: Tab
}

export type SeparateCommand = (ctx: SeparateCommandContext) => void
export type WindowCommand = (ctx: WindowCommandContext) => void
